<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 skin-theme-clientpref-day vector-sticky-header-enabled" lang="de" dir="ltr"><head>
<meta charset="UTF-8">
<title>Programmable Interval Timer</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="./_res_/favicon.png">
<link rel="canonical" href="https://de.wikipedia.org/wiki/Programmable_Interval_Timer"> <link href="./_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link href="./_mw_/ext.gadget.citeRef.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.defaultPlainlinks.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonHide.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonLayout.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonStyle.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiDarkmode.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiResponsive.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.specialSearch.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
<link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
<link rel="stylesheet" type="text/css" href="./_res_/footer.css">
<link rel="stylesheet" type="text/css" href="./_res_/vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Programmable_Interval_Timer rootpage-Programmable_Interval_Timer skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Programmable Interval Timer</span></h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="contentSub">
<div id="mw-content-subtitle"></div>
</div>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="de" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="de" dir="ltr">
<p>Der <b>Programmable Interval Timer</b> (<b>PIT</b>) war ursprünglich ein spezieller Baustein (Chip) im <a href="IBM-PC" class="mw-redirect" title="IBM-PC">IBM-PC</a>, der für die zeitliche Steuerung von <a href="Prozess_(Informatik)" title="Prozess (Informatik)">Prozessen</a> sorgte. Die am häufigsten verwendeten Timer-Chips waren die Typen <a href="Intel_8253" title="Intel 8253">8253</a> und 8254 von <a href="Intel" title="Intel">Intel</a> mit drei 16-Bit breiten Zählern.
</p><p>Der PIT wird, unabhängig von der Rechnergeschwindigkeit, stets im Takt von (idealerweise) 1,19318181818… MHz betrieben; das ist 1/3 der Farbträger-Frequenz des <a href="NTSC" title="NTSC">NTSC</a>-Fernsehsystems. In den ersten PCs von IBM wurde diese merkwürdig anmutende Frequenz gewählt, da für die Einbindung einer <a href="Color_Graphics_Adapter" title="Color Graphics Adapter">CGA</a>-Grafikkarte, die auch Fernsehgeräte als Monitor verwenden konnte, ohnehin ein <a href="Quarz" title="Quarz">Quarz</a> mit einem Vielfachen des Farbträgers vorhanden sein musste. Aus diesem Quarz konnte die PIT-Frequenz dann leicht mittels Frequenzteilung gewonnen werden; diese Vorgehensweise war günstiger als der Einsatz weiterer Quarze, da mit nur einem Quarz in der Schaltung keine störenden <a href="Schwebung" title="Schwebung">Schwebungen</a> das Bildsignal beeinträchtigen können, die dann mit weiterem Schaltungsaufwand herausgefiltert werden müssten. Auch der CPU-Takt der ersten PCs von 4,772727 MHz ergab sich aus einer solchen Erwägung, er betrug 4/3 der Farbträgerfrequenz.
</p><p>In späteren, schnelleren PCs ohne Fernseher-Anschluss bekam der PIT dann aus <a href="Kompatibilit%C3%A4t_(Technik)" title="Kompatibilität (Technik)">Kompatibilitätsgründen</a> einen eigenen Quarz, der weiterhin mit der alten Geschwindigkeit lief. Heute wird meist wieder ein gemeinsamer Quarz verwendet, da verbesserte Frequenzwandler heute problemlos fast jede gewünschte Frequenz aus einer einzigen <a href="Bezugsfrequenz" title="Bezugsfrequenz">Bezugsfrequenz</a> gewinnen können.
</p><p>In heutigen PCs ist die PIT-Funktionalität im <a href="Chipsatz" title="Chipsatz">Chipsatz</a> des <a href="Mainboard" class="mw-redirect" title="Mainboard">Mainboards</a> untergebracht, er wird über den LPC-Bus an die CPU angebunden.
</p><p>Der PIT wurde im Ur-PC für
</p>
<ul><li>Periodische Unterbrechungen auf <a href="Interrupt_Request" class="mw-redirect" title="Interrupt Request">IRQ</a> 0 (PIT-Timer 0),</li>
<li><a href="Dynamisches_RAM" class="mw-redirect" title="Dynamisches RAM">DRAM</a>-Speicher-Refresh (PIT-Timer 1),</li>
<li>Tonerzeugung durch den <a href="PC_Speaker" class="mw-redirect" title="PC Speaker">PC Speaker</a> (PIT-Timer 2)</li>
<li>und als Fail-Safe-Timer (<a href="Hardwareinterrupt" title="Hardwareinterrupt">NMI</a>)</li></ul>
<p>genutzt. In heutigen PCs leistet der PIT nur noch die Speaker-Ansteuerung und (je nach Betriebssystemversion und Alter des Rechners) die periodischen Unterbrechungen.
</p><p>Für diese Funktionen existieren die <a href="Port_(Schnittstelle)" title="Port (Schnittstelle)">Ports</a> 40<sub>Hex</sub> bis 43<sub>Hex</sub> (bzw. 64 bis 67 dezimal), über die der PIT programmiert werden kann. Er kann in verschiedenen Betriebsarten arbeiten. Dabei kann grob zwischen sich immer wiederholenden und einmaligen Abläufen unterschieden werden. Einmalige Abläufe werden in der Praxis jedoch nur sehr selten verwendet und sind nur der Vollständigkeit halber aufgeführt.
</p><p>Im Standard-Modus zählt der Timer vom Startwert (maximal 65535) auf 0 hinunter und fängt beim folgenden Überlauf wieder von vorne an. Bei jedem solchen Überlauf sendet er ein Signal, den Timer-<a href="Interrupt" title="Interrupt">Interrupt</a> (IRQ0), an den <a href="Hauptprozessor" class="mw-redirect" title="Hauptprozessor">Prozessor</a>. Wenn man die <a href="Taktsignal" title="Taktsignal">Taktfrequenz</a> durch die Takte bis zum erneuten Überlauf dividiert, erhält man die <a href="Frequenz" title="Frequenz">Frequenz</a>, mit der der IRQ0 erzeugt wird. Unter <a href="MS-DOS" title="MS-DOS">MS-DOS</a> und älteren Windows-Versionen bis einschließlich <a href="Windows_98" class="mw-redirect" title="Windows 98">Windows 98</a> und <a href="Windows_ME" class="mw-redirect" title="Windows ME">Windows ME</a> wurde der Maximalwert 65535 in den Timer geladen, man erhält somit 1193181,8181… Hz / 65536 = ca. 18,2065 Hz. Es kommt auf diese Art ein Intervall von ca. 55 ms zwischen den Aufrufen des IRQ 0 zustande. Modernere Betriebssysteme (Linux, Windows NT und Abkömmlinge) verwenden kürzere Intervalle zwischen 1 und 10 ms.
</p><p>Allgemein gibt es in einem heutigen (Jahr 2009) Standard-PC folgende Bausteine für die zeitliche Steuerung von Prozessen:
</p>
<ul><li>Programmable Interval Timer (PIT)</li>
<li><a href="Echtzeituhr" title="Echtzeituhr">Real Time Clock</a> (RTC)</li>
<li>Power Management Timer (PMTMR)</li>
<li>Time Stamp Counter (TSC)</li>
<li><a href="APIC" class="mw-redirect" title="APIC">APIC</a> Timer (LAPIC)</li>
<li><a href="High_Precision_Event_Timer" title="High Precision Event Timer">High Precision Event Timer</a> (HPET)</li></ul></div><!--htdig_noindex--><div><div class="zim-footer">
Dieser Artikel wurde von <a class="external text" title="Zuletzt bearbeitet am 2025-10-31" href="https://de.wikipedia.org/wiki/?title=Programmable_Interval_Timer&oldid=261107389">Wikipedia</a> herausgegeben. Der Text ist unter <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.de">Creative Commons Attribution-Share Alike 4.0</a> verfügbar, sofern nicht anders angegeben. Für die Mediendateien können zusätzliche Bedingungen gelten.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
<script src="./_webp_/webpHandler.js"></script>
</body></html>